package utils

import (
	"net/http"

	"github.com/gin-gonic/gin"
)

// Response 统一响应结构
type Response struct {
	Code    int         `json:"code"`    // 状态码
	Message string      `json:"message"` // 消息
	Data    interface{} `json:"data"`    // 数据
}

// 响应状态码常量
const (
	SUCCESS = 200 // 成功
	ERROR   = 500 // 服务器错误
	INVALID = 400 // 请求参数错误
)

// Success 成功响应
func Success(c *gin.Context, message string, data interface{}) {
	c.JSON(http.StatusOK, Response{
		Code:    SUCCESS,
		Message: message,
		Data:    data,
	})
}

// Error 错误响应
func Error(c *gin.Context, message string) {
	c.JSON(http.StatusOK, Response{
		Code:    ERROR,
		Message: message,
		Data:    nil,
	})
}

// InvalidParams 参数错误响应
func InvalidParams(c *gin.Context, message string) {
	c.JSON(http.StatusBadRequest, Response{
		Code:    INVALID,
		Message: message,
		Data:    nil,
	})
}
